package com.lancoo.znbkxx.teacher.widget;

import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.webkit.WebView;

import androidx.annotation.Nullable;

/**
 * Created by kirito on 2017.12.30.
 */

//public class KWebView extends WebView {
//    private onScrollChangeCallback callback;
//
//    public KWebView(Context context) {
//        super(context);
//    }
//
//    public KWebView(Context context, AttributeSet attrs) {
//        super(context, attrs);
//    }
//
//    public KWebView(Context context, AttributeSet attrs, int defStyleAttr) {
//        super(context, attrs, defStyleAttr);
//    }
//
//    @Override
//    protected void onScrollChanged(int l, int t, int oldl, int oldt) {
//        super.onScrollChanged(l, t, oldl, oldt);
//        if (callback != null){
//            callback.onScroll(l-oldl,t-oldt);
//        }
//    }
//
//    public onScrollChangeCallback getOnScrollChangeCallback(){
//        return callback;
//    }
//
//    public void setScrollChangeCallback(onScrollChangeCallback callback){
//        this.callback = callback;
//    }
//
//    //设置回调借口，获取webview滑动的上下，左右距离差
//    public static interface onScrollChangeCallback{
//        public void onScroll(int dx,int dy);
//    }
//}

//public class KWebView extends WebView {
//    private OnScrollChangedCallback mOnScrollChangedCallback;
//
//    public KWebView(final Context context) {
//        super(context);
//    }
//
//    public KWebView(final Context context, final AttributeSet attrs) {
//        super(context, attrs);
//    }
//
//    public KWebView(final Context context, final AttributeSet attrs, final int defStyle) {
//        super(context, attrs, defStyle);
//    }
//
//    @Override
//    protected void onScrollChanged(final int l, final int t, final int oldl, final int oldt) {
//        super.onScrollChanged(l, t, oldl, oldt);
//
//        if (mOnScrollChangedCallback != null) {
//            mOnScrollChangedCallback.onScroll(l - oldl, t - oldt);
//        }
//    }
//
//    public OnScrollChangedCallback getOnScrollChangedCallback() {
//        return mOnScrollChangedCallback;
//    }
//
//    public void setOnScrollChangedCallback(
//            final OnScrollChangedCallback onScrollChangedCallback) {
//        mOnScrollChangedCallback = onScrollChangedCallback;
//    }
//
//    /**
//     * Impliment in the activity/fragment/view that you want to listen to the webview
//     */
//    public static interface OnScrollChangedCallback {
//        public void onScroll(int dx, int dy);
//    }
//}

public class KWebView extends WebView {
    public OnScrollChangeListener listener;

    public KWebView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public KWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public KWebView(Context context) {
        super(context);
    }

    @Override
    protected void onScrollChanged(int l, int t, int oldl, int oldt) {

        super.onScrollChanged(l, t, oldl, oldt);

        float webcontent = getContentHeight() * getScale();// webview的高度
        float webnow = getHeight() + getScrollY();// 当前webview的高度
        Log.e("TAG1", "webview.getScrollY()====>>" + getScrollY());
        if (Math.abs(webcontent - webnow) < 1) {
            // 已经处于底端
            // Log.i("TAG1", "已经处于底端");
            listener.onPageEnd(l, t, oldl, oldt);
        } else if (getScrollY() == 0) {
            // Log.i("TAG1", "已经处于顶端");
            listener.onPageTop(l, t, oldl, oldt);
        } else {
            listener.onScrollChanged(l, t, oldl, oldt);
        }

    }

    @Override
    public void setOnLongClickListener(@Nullable OnLongClickListener l) {
        super.setOnLongClickListener(l);
        return;
    }

    public void setOnScrollChangeListener(OnScrollChangeListener listener) {

        this.listener = listener;

    }

    public interface OnScrollChangeListener {
        public void onPageEnd(int l, int t, int oldl, int oldt);
        public void onPageTop(int l, int t, int oldl, int oldt);
        public void onScrollChanged(int l, int t, int oldl, int oldt);

    }

}